package com.wl.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.wl.dao.EmpMapper;
import com.wl.dao.LoginfoMapper;
import com.wl.entity.Emp;
import com.wl.service.EmpService;
import com.wl.util.MD5Util;
import com.wl.util.PageData;
@Service
public class EmpServiceImpl implements EmpService {
	// 注入一个EmpMapper
	@Autowired
	private EmpMapper empMapper;
	// 日志
	private LoginfoMapper loginfoMapper;

	/**
	 * 增加
	 */
	@Override
	public boolean addEmp(Emp emp) {
		// TODO Auto-generated method stub
		boolean flag = empMapper.addEmp(emp);
		return flag;
	}

	/**
	 * 修改信息
	 */
	@Override
	public boolean updateByEmpno(Emp record) {
		// TODO Auto-generated method stub
		return empMapper.updateByEmpno(record);
	}

	/**
	 * 删除信息
	 */
	@Override
	public boolean deleteByEmpno(String empno) {
		// TODO Auto-generated method stub
		return empMapper.deleteByEmpno(empno);
	}

	/**
	 * 模糊查询+分页
	 */
	@Override
	public PageData<Emp> selectEmpByLike(int page, int limit, String keywords) {
		// 设置起始位置

		int start = 0;
		if (page >= 1) {
			start = (page - 1) * limit;
		}
		// 查询总页数
		int totalCount = empMapper.selectEmpByLikeCount(keywords);

		// 分页的数据
		List<Emp> data = empMapper.selectEmpByPage(start, limit, keywords);

		// 构造方法 赋值内容为 数据 总记录数 limit page
		PageData<Emp> pageData = new PageData<>(data, totalCount, limit, page);

		// 还有: code 从layui哪里来的
		pageData.setCode(0);
		pageData.setMsg("");
		return pageData;
	}
	
	/**
	 * 模糊查询+分页  selectEmpByLikePageS------测试
	 */
	@Override
	public PageData<Emp> selectEmpByLikePageS(int page, int limit, String keywords,String keywords2,String keywords3,String keywords4,String keywords5) {
		// 设置起始位置

		int start = 0;
		if (page >= 1) {
			start = (page - 1) * limit;
		}
		// 查询总页数
		int totalCount = empMapper.selCountS(keywords, keywords2, keywords3, keywords4, keywords5);

		// 分页的数据
		List<Emp> data = empMapper.selectByPageS(start, limit, keywords, keywords2, keywords3, keywords4, keywords5);

		// 构造方法 赋值内容为 数据 总记录数 limit page
		PageData<Emp> pageData = new PageData<>(data, totalCount, limit, page);

		// 还有: code 从layui哪里来的
		pageData.setCode(0);
		pageData.setMsg("");
		return pageData;

	}
	
	/**
	 * 根据empno查询信息
	 */
	@Override
	public Emp selectEmpById(String empno) {
		// TODO Auto-generated method stub
		return empMapper.selectByEmpNo(empno);
	}
	
	/**
	 * 
     * 根据员工编号查询 关联部门
     * @param empno
     * @return
     */
	@Override
	public Emp selectByEmpNo(String empno) {
		// TODO Auto-generated method stub
		return empMapper.selectByEmpNo(empno);
	}
	/**
	 * 按照编号模糊查询所有 关联部门
	 * 
	 * @param empno
	 * @return
	 */
	@Override
	public List<Emp> selectEmpByLike(String empno) {
		// TODO Auto-generated method stub
		return empMapper.selectEmpByLike(empno);
	}
	/**
	 * 检查账号密码
	 */
	@Override
	public boolean checkLogin(String empno, String emppwd) {
		// TODO Auto-generated method stub
		String psw = "";
			// 使用MD5算法将密码转换成密文
			psw = MD5Util.getEncodeByMd5(emppwd);
		
		Emp emp = empMapper.findByNoAndPwd(empno, psw);
		
		boolean flag = false;
		if (emp!=null) {
			flag = true;
		}else {
			flag = false;
		}
		return flag;
	}
	/**
	 * 根据当前账号密码获取数据
	 */
	@Override
	public Emp getEmpByEmp(Emp emp) {
		// TODO Auto-generated method stub
		String psw = "";
		// 使用MD5算法将密码转换成密文
		psw = MD5Util.getEncodeByMd5(emp.getEmppwd());
		Emp emp2 = empMapper.findByNoAndPwd(emp.getEmpno(), psw);
		System.out.println(emp2);
		return emp2;
	}

	@Override
	public boolean updateByKey(Emp record) {
		// TODO Auto-generated method stub
		return empMapper.updateByKey(record);
	}
	/**
	 * 统计员工数量
	 */
	@Override
	public int getEmpsCount() {
		// TODO Auto-generated method stub
		return empMapper.getEmpsCount();
	}
	
}
